#ifndef DIRECTORYHANDLER_H_
#define DIRECTORYHANDLER_H_
#include <algorithm>
#include <string>
#include <vector>
#include <string.h>
#include <iostream>
using namespace std;
class directoryHandler {
private:
	const char* directoryPath;
	
	char* convertString(string* s) {
	char *result = new char[s->size() + 1];
	strcpy(result, s->c_str());
	return result;
}

public:
	//Recibe la ruta del directorio
	directoryHandler(const char* dirPath);

	~directoryHandler();
	//Devuelve la cantidad de archivos que hay en el directorio
	int getNumberOfFiles();

	//Genera una lista de los archivos que hay en el directorio y la guarda en outPath
	void generateListOfFiles(char* outPath);

	//Devuelve un array con la ruta completa de los archivos en el directorio
	vector <string> getFilesPaths();

	//Devuelve un array con los nombres de los archivos en el directorio
	vector <string> getFilesNames();

	//Elimina los archivos del directorio si recursive==true tambien los subdirec
	void deleteFiles(bool recursive);

	//Elimina una carpeta del directorio
	void deleteFolder(char* name);

	//Crea una nueva carpeta en el directorio actual
	void createFolder(char* name);

	//Elimina un archivo del directorio
	void deleteFile(char* name);

	//Determina si una carpeta existe en el directorio
	bool fileExists(char* name);

	//Determina si una carpeta existe en el directorio
	bool folderExists(char* name);

	//Mueve un archivo del directorio actual(el del handler) a newPath.
	void moveFile(char* name, char* newPath);



};





#endif /* DIRECTORYHANDLER_H_ */
